function [g4,g6,g4_pos,g6_pos,g4s,g6s] = my_girth_4_6(H_c_new,Z,z_max_new,g4,g6,g4_pos,g6_pos, rst)
% clc;
% clear all;
% close all;
% % 
% %% my LDPC code
% H_c_2304 = [-1 94 73 -1 -1 -1 -1 -1 55 83 -1 -1  7  0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1;
% -1 27 -1 -1 -1 22 79  9 -1 -1 -1 12 -1  0  0 -1 -1 -1 -1 -1 -1 -1 -1 -1;
% -1 -1 -1 24 22 81 -1 33 -1 -1 -1  0 -1 -1  0  0 -1 -1 -1 -1 -1 -1 -1 -1;
% 61 -1 47 -1 -1 -1 -1 -1 65 25 -1 -1 -1 -1 -1  0  0 -1 -1 -1 -1 -1 -1 -1;
% -1 -1 39 -1 -1 -1 84 -1 -1 41 72 -1 -1 -1 -1 -1  0  0 -1 -1 -1 -1 -1 -1;
% -1 -1 -1 -1 46 40 -1 82 -1 -1 -1 79  0 -1 -1 -1 -1  0  0 -1 -1 -1 -1 -1;
% -1 -1 95 53 -1 -1 -1 -1 -1 14 18 -1 -1 -1 -1 -1 -1 -1  0  0 -1 -1 -1 -1;
% -1 11 73 -1 -1 -1  2 -1 -1 47 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -1 -1 -1;
% 12 -1 -1 -1 83 24 -1 43 -1 -1 -1 51 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -1 -1;
% -1 -1 -1 -1 -1 94 -1 59 -1 -1 70 72 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -1;
% -1 -1  7 65 -1 -1 -1 -1 39 49 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0;
% 43 -1 -1 -1 -1 66 -1 41 -1 -1 -1 26  7 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0;];
% z_max_2304 = 96;
% 
% H_c_8192 = [131 -1  -1  156 -1  -1  -1  -1  -1  148 -1  235 -1  89  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
% 88  -1  -1  -1  214 -1  187 -1  178 -1  207 -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
% -1  231 -1  -1  -1  -1  35  -1  -1  48  -1  -1  -1  174 211 -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
% -1  -1  134 -1  198 -1  -1  -1  133 -1  227 -1  -1  99  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
% 231 -1  -1  -1  -1  21  -1  211 -1  -1  -1  -1  -1  -1  51  36  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
% -1  177 150 -1  238 -1  112 -1  -1  -1  46  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1  -1;
% 77  -1  -1  -1  -1  210 -1  -1  27  -1  -1  225 -1  241 -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1;
% -1  -1  161 -1  12  -1  -1  72  -1  -1  45  -1  -1  -1  -1  -1  61  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1;
% 245 -1  -1  -1  -1  -1  254 -1  107 -1  -1  -1  234 -1  -1  179 -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1;
% -1  -1  105 -1  29  -1  -1  -1  60  -1  67  -1  -1  248 -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1;
% -1  86  242 -1  -1  -1  36  -1  -1  75  -1  129 -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1;
% -1  -1  -1  117 185 -1  -1  -1  160 -1  236 -1  -1  209 -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1;
% 148 -1  -1  -1  -1  -1  -1  106 -1  -1  -1  -1  204 95  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1;
% -1  -1  189 -1  95  -1  30  -1  -1  -1  -1  -1  -1  -1  -1  33  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1;
% -1  -1  154 34  -1  -1  -1  -1  2   -1  -1  -1  68  -1  74  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0;
% 61  -1  -1  -1  -1  81  157 -1  -1  -1  109 -1  -1  -1  -1  -1  0   -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0;];
% z_max_8192 = 256;
% 
% H_c_new = [131 -1  -1  156 -1  -1  -1  -1  -1  148 -1  235 -1  89  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
% 88  -1  -1  -1  214 -1  187 -1  178 -1  207 -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
% -1  231 -1  -1  -1  -1  35  -1  -1  48  -1  -1  -1  174 211 -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
% -1  -1  134 -1  198 -1  -1  -1  133 -1  227 -1  -1  99  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
% 231 -1  -1  -1  -1  21  -1  211 -1  -1  -1  -1  -1  -1  51  36  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
% -1  177 150 -1  238 -1  112 -1  -1  -1  46  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1  -1;
% 77  -1  -1  -1  -1  210 -1  -1  27  -1  -1  225 -1  241 -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1  -1;
% -1  -1  161 -1  20  -1  -1  72  -1  -1  45  -1  -1  -1  -1  -1  61  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1  -1;
% 245 -1  -1  -1  -1  -1  254 -1  107 -1  -1  -1  234 -1  -1  179 -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1  -1;
% -1  -1  105 -1  29  -1  -1  -1  60  -1  67  -1  -1  248 -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1  -1;
% -1  86  242 -1  -1  -1  36  -1  -1  75  -1  129 -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1  -1;
% -1  -1  -1  117 185 -1  -1  -1  160 -1  236 -1  -1  209 -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1  -1;
% 148 -1  -1  -1  -1  -1  -1  106 -1  -1  -1  -1  204 95  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1  -1;
% -1  -1  189 -1  95  -1  30  -1  -1  -1  -1  -1  -1  -1  -1  33  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0   -1;
% -1  -1  154 34  -1  -1  -1  -1  2   -1  -1  -1  68  -1  74  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0   0;
% 61  -1  -1  -1  -1  81  164 -1  -1  -1  109 -1  -1  -1  -1  -1  0   -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  0;];
% z_max_new = 256;
% 
% H_c_256 = [  17  -1  -1  64  -1  -1  -1  -1  -1   2  -1 198  -1 106  -1  -1 140   0  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
%              68  -1  -1  -1  72  -1  80  -1 131  -1 234  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
%              -1 117  -1  -1  -1  -1 130  -1  -1 215  -1  -1  -1 166  17  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
%              -1  -1  63  -1 176  -1  -1  -1 221  -1  10  -1  -1 118  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
%              99  -1  -1  -1  -1 197  -1  34  -1  -1  -1  -1  -1  -1  42 103  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1;
%              -1 246  77  -1  40  -1  40  -1  -1  -1  91  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1  -1  -1;
%              16  -1  -1  -1  -1 122  -1  -1 186  -1  -1 221  -1  92  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1  -1;
%              -1  -1 248  -1   8  -1  -1  48  -1  -1  76  -1  -1  -1  -1  -1  48  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1;
%             159  -1  -1  -1  -1  -1  83  -1 124  -1  -1  -1 111  -1  -1  16  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1;
%              -1  -1  25  -1 185  -1  -1  -1 215  -1 150  -1  -1 153  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1;
%              -1 211  49  -1  -1  -1 120  -1  -1  12  -1  83  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1;
%              -1  -1  -1  68 175  -1  -1  -1 248  -1 208  -1  -1  87  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1;
%             183  -1  -1  -1  -1  -1  -1 110  -1  -1  -1  -1 150 109  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1;
%              -1  -1 214  -1 130  -1 206  -1  -1  -1  -1  -1  -1  -1  -1 225  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1;
%              -1  -1 173 170  -1  -1  -1  -1 244  -1  -1  -1 117  -1 209  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0;
%              75  -1  -1  -1  -1 248 241  -1  -1  -1 164  -1  -1  -1  -1  -1 140  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0;];
% z_max_256 = 256;
% 
% H_c_360 = [ 318  -1  -1 107  -1  -1  -1  -1  -1  64  -1 294  -1 115  -1  -1 267   0  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1
%             234  -1  -1  -1 287  -1 232  -1 326  -1 170  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1
%              -1 186  -1  -1  -1  -1 188  -1  -1  91  -1  -1  -1 283 313  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1
%              -1  -1 159  -1  18  -1  -1  -1 102  -1  95  -1  -1 186  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1
%             146  -1  -1  -1  -1   4  -1 253  -1  -1  -1  -1  -1  -1 193 163  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1
%              -1  89 243  -1 292  -1 195  -1  -1  -1 139  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1  -1  -1
%             357  -1  -1  -1  -1 235  -1  -1 233  -1  -1 178  -1 170  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1  -1
%              -1  -1 233  -1 321  -1  -1  70  -1  -1 261  -1  -1  -1  -1  -1 124  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1  -1
%             216  -1  -1  -1  -1  -1 107  -1 328  -1  -1  -1 333  -1  -1 328  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1  -1
%              -1  -1  47  -1   1  -1  -1  -1 337  -1 337  -1  -1  30  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1  -1
%              -1 359  12  -1  -1  -1 309  -1  -1  50  -1 286  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1  -1
%              -1  -1  -1  52  66  -1  -1  -1 107  -1 207  -1  -1 185  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1  -1
%             278  -1  -1  -1  -1  -1  -1 234  -1  -1  -1  -1  22  97  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1  -1
%              -1  -1  50  -1   9  -1 325  -1  -1  -1  -1  -1  -1  -1  -1 187  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0  -1
%              -1  -1 105 308  -1  -1  -1  -1 308  -1  -1  -1 135  -1 303  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0   0
%             101  -1  -1  -1  -1 192 136  -1  -1  -1 286  -1  -1  -1  -1  -1 267  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1  -1   0];
% z_max_360 = 360;
%%
H_c = H_c_new;
% Z = 45;
z_max = z_max_new;
[M, N] = size(H_c);

% for ii=1:1:M
%     for jj=1:1:N
%         if (H_c(ii,jj)>=0)
%             H_c(ii,jj)=floor((H_c(ii,jj)*Z)/z_max);
%         else
%             H_c(ii,jj)=H_c(ii,jj);
%         end
%          fprintf('%4d',H_c(ii,jj));
%     end
%      fprintf('\n');
% end
fprintf('\n');

[g4,g6,g4_pos,g6_pos,g4s,g6s] = girth_4_6(H_c,Z,g4,g6,g4_pos,g6_pos, rst);

if (g4s==0)
    fprintf('No girth 4\n');
    if (g6s==0)
	   fprintf('No girth 6\n')
    else
	   fprintf('The H matrix has %d girth 6\n', g6s)  % Provde the test result.
    end  
else
    fprintf('The H matrix has %d girth 4\n',g4s)  % Provde the test result.
    if (g6s==0)
	   fprintf('No girth 6\n')
    else
	   fprintf('The H matrix has %d girth 6\n', g6s)  % Provde the test result.
    end  
end

